MinIO 常用命令

  • ~7.69K 字
  1. 1. 一、基础操作
    1. 1.1. 1. 添加和查看主机配置
  2. 2. 📁 二、存储桶(Bucket)管理
  3. 3. 🧩 三、用户基础管理
    1. 3.1. 🔹 创建用户
    2. 3.2. 🔹 列出所有用户
    3. 3.3. 🔹 查看用户信息
    4. 3.4. 🔹 禁用用户
    5. 3.5. 🔹 启用用户
    6. 3.6. 🔹 删除用户
    7. 3.7. 🔹 AccessKey管理
      1. 3.7.1. 1️⃣ 创建访问密钥
      2. 3.7.2. 2️⃣ 列出用户的所有 AccessKey
      3. 3.7.3. 3️⃣ 查看 AccessKey 详细信息
      4. 3.7.4. 4️⃣ 启用 / 禁用 AccessKey
      5. 3.7.5. 5️⃣ 删除 AccessKey
      6. 3.7.6. 6️⃣ 修改 AccessKey 属性(编辑)
        1. 3.7.6.1. 示例
      7. 3.7.7. 参数说明
        1. 3.7.7.1. 1️⃣ 创建长期 AccessKey(给后端服务用)
        2. 3.7.7.2. 2️⃣ 创建临时 AccessKey(例如一周有效)
  4. 4. 🧰 四、常用内置策略(MinIO 自带)
  5. 5. 🧾 五、自定义策略
    1. 5.1. 🔹 1. 创建策略文件(例:readonly-bucket.json)
    2. 5.2. 🔹 2. 导入策略
    3. 5.3. 🔹 3. 绑定策略到用户
    4. 5.4. 🔹 4. 绑定策略到组
    5. 5.5. 🔹 5. 列出所有策略
    6. 5.6. 🔹 6. 查看策略内容
  6. 6. 🧮 六、策略管理命令汇总
  7. 7. 🧱 七、实用组合命令
  8. 8. 📦 八、对象(文件)操作
  9. 9. 🔁 九、同步与镜像
  10. 10. 🔒 十一、访问控制与策略
  11. 11. 🧾 十二、信息与监控
  12. 12. 🧰 十三、其他实用命令

一、基础操作

1. 添加和查看主机配置

mc alias set myminio http://127.0.0.1:9000 minioadmin minioadmin

为 MinIO 服务设置别名 myminio,并提供访问密钥。

查看所有主机:

mc alias list

查看指定主机:

mc alias list myminio

删除主机:

mc alias remove myminio

📁 二、存储桶(Bucket)管理

创建 Bucket:

mc mb myminio/mybucket

列出 Bucket:

mc ls myminio

删除 Bucket:

mc rb myminio/mybucket

如果 bucket 非空,可加 --force 参数。


🧩 三、用户基础管理

🔹 创建用户

mc admin user add myminio <username> <password> [policy=<policy_name>]

示例:

mc admin user add myminio testuser Test@123 policy=readwrite

🔹 列出所有用户

mc admin user list myminio

🔹 查看用户信息

mc admin user info myminio testuser

🔹 禁用用户

mc admin user disable myminio testuser

🔹 启用用户

mc admin user enable myminio testuser

🔹 删除用户

mc admin user remove myminio testuser

🔹 AccessKey管理

1️⃣ 创建访问密钥

mc admin accesskey create <ALIAS> <USERNAME> [--expiry 7d] [--name <alias>] [--description "for app01"]

示例:

mc admin accesskey create myminio test01 --expiry 30d --description "backup job"

输出示例:

AccessKey: 7PD6L46BBQX7CWO1EUZV
SecretKey: q0WnXy7Kf6zN3R8wP9sE1hV5tA4rL2jB
Name: backup job
User: test01
Expiration: 30d
Status: enabled

2️⃣ 列出用户的所有 AccessKey

mc admin accesskey ls myminio test01

输出类似:

AccessKey                                     Expiration    Status
7PD6L46BBQX7CWO1EUZV              2025-12-01  enabled
YTR4CIHAU9CZWCC09RU5               none           disabled

3️⃣ 查看 AccessKey 详细信息

mc admin accesskey info myminio YTR4CIHAU9CZWCC09RU5

输出包括:

AccessKey: YTR4CIHAU9CZWCC09RU5
User: test01
Policy: readwrite
Expiration: none
Description: CI/CD credentials
Status: enabled

4️⃣ 启用 / 禁用 AccessKey

禁用:

mc admin accesskey disable myminio 7PD6L46BBQX7CWO1EUZV

启用:

mc admin accesskey enable myminio 7PD6L46BBQX7CWO1EUZV

👉 适用于暂时停用某一对凭证(比如离职员工、项目暂停)。


5️⃣ 删除 AccessKey

mc admin accesskey remove myminio 7PD6L46BBQX7CWO1EUZV

删除后该 AccessKey 无法再访问 MinIO,建议定期清理。


6️⃣ 修改 AccessKey 属性(编辑)

mc admin accesskey edit <ALIAS> <ACCESSKEY> \
  [--description "new description"] \
  [--expiry-duration 30d] \
  [--expiry 2025-12-31T00:00:00Z] \
  [--name "friendly-name"] \
  [--policy /path/to/policy.json] \
  [--secret-key "newsecret"]
示例
mc admin accesskey edit myminio 7PD6L46BBQX7CWO1EUZV \
  --description "updated for new backup job" \
  --expiry-duration 60d
  

👉 适用于延长凭证过期时间、替换 SecretKey、或修改描述。

参数说明

参数 说明
--expiry-duration 从现在起的有效期(如 30d, 12h
--expiry 设置具体过期时间点
--secret-key 替换 AccessKey 的 SecretKey(重新生成密钥)
--policy 指定新的策略文件路径(覆盖原策略)
--description 设置或修改备注信息
--name 友好显示名,方便识别不同密钥来源

例子:

1️⃣ 创建长期 AccessKey(给后端服务用)

mc admin accesskey create myminio test01 --description "appserver credentials"

2️⃣ 创建临时 AccessKey(例如一周有效)

mc admin accesskey create myminio test01 --expiry 7d --description "temp debug key"


操作 命令
创建 AccessKey mc admin accesskey create myminio <user> [--expiry 30d]
列出 AccessKey mc admin accesskey ls myminio <user>
查看详情 mc admin accesskey info myminio <accesskey>
禁用 / 启用 mc admin accesskey disable/enable myminio <accesskey>
修改属性 mc admin accesskey edit myminio <accesskey> [options]
删除 mc admin accesskey remove myminio <accesskey>

🧰 四、常用内置策略(MinIO 自带)

策略名 权限说明
readonly 仅可读取对象
writeonly 仅可上传对象(无法读取)
readwrite 可读写对象
consoleAdmin 管理员权限,可访问 MinIO 控制台

应用示例:

mc admin user add myminio user1 Pass123 policy=readonly 
mc admin user add myminio user2 Pass123 policy=readwrite 
mc admin user add myminio adminuser Pass123 policy=consoleAdmin

🧾 五、自定义策略

🔹 1. 创建策略文件(例:readonly-bucket.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["s3:GetObject"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::mybucket/*"]
    }
  ]
}

🔹 2. 导入策略

mc admin policy create myminio readonly-bucket readonly-bucket.json

🔹 3. 绑定策略到用户

mc admin policy attach <ALIAS> <POLICY_NAME> --user <USERNAME>

🔹 4. 绑定策略到组

mc admin policy attach <ALIAS> <POLICY_NAME> --group <GROUPNAME>

🔹 5. 列出所有策略

mc admin policy list myminio

🔹 6. 查看策略内容

mc admin policy info myminio readonly-bucket

🧮 六、策略管理命令汇总

操作 命令示例
创建策略 mc admin policy create myminio <name> <file.json>
删除策略 mc admin policy remove myminio <name>
列出策略 mc admin policy list myminio
查看策略 mc admin policy info myminio <name>
绑定策略到用户 mc admin policy set myminio <policy> user=<username>

🧱 七、实用组合命令

1️⃣ 创建用户并立即绑定自定义策略

mc admin user add myminio uploader Uploader@123 

mc admin policy set myminio upload-policy user=uploader

2️⃣ 一键查看用户与策略绑定关系

mc admin user info myminio | grep policyName

📦 八、对象(文件)操作

上传文件:

mc cp ./file.txt myminio/mybucket

上传目录:

mc cp --recursive ./data/ myminio/mybucket/

下载文件:

mc cp myminio/mybucket/file.txt ./file.txt

下载目录:

mc cp --recursive myminio/mybucket/path ./

拷贝文件(跨桶复制对象):

mc cp myminio/bucket1/file myminio/bucket2/

重命名或移动文件:

mc mv myminio/mybucket/file.txt  myminio/mybucket/b.txt

删除对象:

mc rm myminio/mybucket/file.txt

递归删除:

mc rm --recursive --force myminio/mybucket/path/

对象信息与元数据操作:

操作 命令示例 说明
查看文件信息 mc stat myminio/mybucket/file.txt 显示大小、修改时间、ETag、版本等
列出对象 mc ls myminio/mybucket/path/ 列出指定路径下的文件
查看目录树 mc tree myminio/mybucket --depth 2 以层级结构展示对象
查看桶或目录用量 mc du myminio/mybucket 显示总空间占用
查看对象元数据 mc head myminio/mybucket/file.txt 查看自定义 Metadata
修改对象元数据 mc cp --attr "x-amz-meta-key=value" myminio/mybucket/file.txt 添加或覆盖对象元数据

🔁 九、同步与镜像

单向同步(本地 → MinIO 同步):

mc mirror ./data myminio/mybucket

反向同步(MinIO → 本地 同步):

mc mirror myminio/mybucket ./data

双向持续同步(实时监控变化):

mc mirror --watch ./data myminio/mybucket

同步排除某类文件(忽略临时文件):

mc mirror --exclude "*.tmp" ./data myminio/mybucket

压缩同步:

mc mirror --zip ./data myminio/backup

🔒 十一、访问控制与策略

查看策略:

mc anonymous get myminio/mybucket

设置公开访问:

mc anonymous set public myminio/mybucket

设为私有:

mc anonymous set private myminio/mybucket

🧾 十二、信息与监控

查看服务器信息:

mc admin info myminio

查看用户列表:

mc admin user list myminio

查看桶使用统计:

mc du myminio/mybucket

实时监控文件变化:

mc watch myminio/mybucket

查看活动会话:

mc admin trace myminio

查看当前身份:

mc whoami myminio

测速上传/下载:

mc support perf net myminio

🧰 十三、其他实用命令

复制桶结构(无数据):

mc cp --attr x-amz-meta-key=value --recursive myminio/srcbucket myminio/destbucket

对象分享与访问:

操作 命令示例 说明
生成临时下载链接 mc share download myminio/mybucket/file.txt 创建预签名 URL
生成临时上传链接 mc share upload myminio/mybucket/file.txt 允许他人上传
查看已生成分享链接 mc share list 查看活跃分享
设置桶或对象为公开 mc anonymous set public myminio/mybucket 匿名可读
恢复私有 mc anonymous set private myminio/mybucket 禁止匿名访问

对象版本与回收管理(若开启版本控制):

操作 命令示例 说明
查看对象所有版本 mc ls --versions myminio/mybucket/file.txt 显示版本号
恢复旧版本 mc cp myminio/mybucket/file.txt#<version-id> ./ 下载旧版本
删除指定版本 mc rm myminio/mybucket/file.txt#<version-id> 删除旧版本
清空过期版本 mc rm --versions --force myminio/mybucket/ 批量清理

对象访问控制与权限管理:

操作 命令示例 说明
查看匿名访问级别 mc anonymous get myminio/mybucket 查看公开/私有状态
设为公开读取 mc anonymous set public myminio/mybucket 匿名可读
设为私有 mc anonymous set private myminio/mybucket 禁止匿名
设置下载策略(预签名) mc share download myminio/mybucket/file.txt --expire 2h 两小时有效链接

批量查找与筛选(非常实用):

操作 命令示例 说明
查找所有 .log 文件 mc find myminio/mybucket --name "*.log" 按名称匹配
查找最近 7 天内修改的文件 mc find myminio/mybucket --newer-than 7d 时间过滤
查找大于 100MB 的文件 mc find myminio/mybucket --size "+100MB" 大文件搜索
组合筛选并打印路径 mc find myminio/mybucket --name "*.csv" --older-than 30d --print "{size}\t{url}" 复杂过滤输出

恢复私有(禁止匿名访问):

mc anonymous set private myminio/mybucket